package com.ruoyi.common.utils.uuid;

/**
 * ID生成器工具类
 *
 * @author ruoyi
 */
public class IdUtils
{
    /**
     * 获取随机UUID
     *
     * @return 随机UUID
     */
    public static String randomUUID()
    {
        return UUID.randomUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String simpleUUID()
    {
        return UUID.randomUUID().toString(true);
    }

    /**
     * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 随机UUID
     */
    public static String fastUUID()
    {
        return UUID.fastUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String fastSimpleUUID()
    {
        return UUID.fastUUID().toString(true);
    }
    /**
     * 生成Long类型的ID（基于UUID的哈希值）
     * @return 长整型ID
     */
    /**
     * 生成Long类型的ID
     * @return Long类型的ID
     */
    // 生成安全的Long型ID (正数且小于Long.MAX_VALUE)
    public static long generateLongId() {
        long id = UUID.randomUUID().getMostSignificantBits();
        return id & Long.MAX_VALUE;  // 确保是正数
    }
}
